package org.example.inventory.dao;



import org.example.inventory.entity.User;
import org.example.inventory.enums.UserStatus;

import java.util.List;

//定义UserDao，定义操作User表的方法
//为什么先定义接口，因为实现存在不同数据库的变化
//一旦功能存在变化的可能性，就要先定义接口
//一个类只操作一张表，一个方法只支持一个功能
public interface UserDao {
    //插入用户并返回生产的主键
    int insert(User user);
    //根据ID删除用户
    int deleteById(Integer id);
    //更新用户信息
    int update(User user);
    //根据ID查询用户
    User selectById(Integer id);
    //根据用户名查询用户
    User selectByUsername(String username);
    //查询所有用户(分页可选)
    List<User> selectAll();
    //更新用户状态
    int updateStatus(Integer id, UserStatus status);
    //验证用户名是否存在
    boolean existsUsername(String username);


}
